Skip to content

docs: add optional serviceAccountTokenCreator role for WIF + Data Explorer (GCP)#1568

Merged
MichaelTansiniSeqera merged 4 commits into
masterfrom
docs/wif-data-explorer-signing
Jun 16, 2026
Merged

docs: add optional serviceAccountTokenCreator role for WIF + Data Explorer (GCP)#1568
MichaelTansiniSeqera merged 4 commits into
masterfrom
docs/wif-data-explorer-signing

Conversation

@MichaelTansiniSeqera

Copy link
Copy Markdown
Contributor

Summary

  • Adds step 6 to the Workload Identity Federation setup in both Cloud and Enterprise Google Cloud Batch docs
  • roles/iam.serviceAccountTokenCreator is optional — required only when the same WIF credential is used for Data Explorer file preview/download
  • Running pipelines is not affected; the gap only surfaces when a user views or downloads file contents via Data Explorer

Why

With a stored SA JSON key, Platform signs presigned URLs locally using the embedded private key. With WIF there is no local private key, so Platform calls the GCP IAM signBlob API instead. That API requires iam.serviceAccounts.signBlob, which is not included in roles/iam.workloadIdentityUser. Without this role, Data Explorer returns an opaque error code on file open/download.

Changes

  • platform-cloud/docs/compute-envs/google-cloud-batch.md
  • platform-enterprise_docs/compute-envs/google-cloud-batch.md

🤖 Generated with Claude Code

…rer on GCP

When WIF credentials are used for Data Explorer, Platform has no embedded
private key and must call the GCP IAM signBlob API to generate presigned
URLs. roles/iam.serviceAccountTokenCreator on the SA itself is required
for this to succeed. Without it, file viewing and download fail silently
with a signing error. Running pipelines is unaffected.

Updates both Cloud and Enterprise Google Cloud Batch docs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@netlify

netlify Bot commented Jun 15, 2026

Copy link
Copy Markdown

Deploy Preview for seqera-docs ready!

Name Link
🔨 Latest commit 3bc5b38
🔍 Latest deploy log https://app.netlify.com/projects/seqera-docs/deploys/6a31092257e6a100076803b1
😎 Deploy Preview https://deploy-preview-1568--seqera-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Switch from self-grant (serviceAccount:SA_EMAIL) to the WIF pool principal
(principalSet://...) for the serviceAccountTokenCreator binding. This scopes
the permission to federated identities from the pool rather than the SA itself,
matching what actually calls signBlob at runtime and making it easier to narrow
scope per workspace later.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment thread platform-cloud/docs/compute-envs/google-cloud-batch.md
Comment thread platform-cloud/docs/compute-envs/google-cloud-batch.md Outdated
Comment thread platform-enterprise_docs/compute-envs/google-cloud-batch.md

@jonmarti jonmarti left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Technical content is accurate and matches the diagnosis we landed on in the Slack thread with the customer that hit this:

  • ✅ Correct role: roles/iam.serviceAccountTokenCreator
  • ✅ Correct binding shape: --member is the WIF principal (not the SA self-grant workaround the customer initially applied)
  • ✅ Symmetric with the step 5 workloadIdentityUser binding on the same SA
  • ✅ Correctly flagged as optional — pipelines work without it; only Data Explorer file content access triggers signBlob

Only two small suggestions left

@christopher-hakkaart christopher-hakkaart left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Editorial review is 👍

MichaelTansiniSeqera and others added 2 commits June 16, 2026 09:27
- Add workspace-scoping note for serviceAccountTokenCreator binding
  (mirrors step 5's "all pool identities or a specific workspace" framing)
- Replace vague "signing error" with exact log phrases for searchability:
  SigningException + iam.serviceAccounts.signBlob permission denial

Applies to both cloud and enterprise GCB docs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@MichaelTansiniSeqera

Copy link
Copy Markdown
Contributor Author

Made changes - thanks @jonmarti . We are good to go?

@MichaelTansiniSeqera MichaelTansiniSeqera merged commit 37b13a2 into master Jun 16, 2026
12 of 13 checks passed
@MichaelTansiniSeqera MichaelTansiniSeqera deleted the docs/wif-data-explorer-signing branch June 16, 2026 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants